DNAD, a simple tool for automatic differentiation of Fortran codes using dual numbers
نویسندگان
چکیده
DNAD (dual number automatic differentiation) is a simple, general-purpose tool to automatically differentiate Fortran codes written in modern Fortran (F90/95/2003) or legacy codes written in previous version of the Fortran language. It implements the forward mode of automatic differentiation using the arithmetic of dual numbers and the operator overloading feature of F90/95/2003. Very minimum changes of the source codes are needed to compute the first derivatives of Fortran programs. The advantages of DNAD in comparison to other existing similar computer codes are its programming simplicity, extensibility, and computational efficiency. Specifically, DNAD is more accurate and efficient than the popular complex-step approximation. Several examples are used to demonstrate its applications and advantages.
منابع مشابه
Automatic Differentiation with Code Coupling and Applications to Scale Modules
An advanced automatic differentiation tool for Fortran 90 software has been developed at Oak Ridge National Laboratory. This tool, called GRESS 90, has a code-coupling feature to propagate derivatives relative to the input of one code through a series of codes that utilize the results of one calculation as the input in the next to determine a final result. GRESS 90 has been applied to the reson...
متن کاملApplication of Automatic Differentiation to 3-D Volume Grid Generation Software1
Automatic differentiation (AD) is a methodology for developing reliable sensitivity-enhanced versions of arbitrary computer programs with little human effort. As such, it can vastly accelerate the use of advanced simulation codes in a multidisciplinary design optimization context, as the time for generating and verifying derivative codes is greatly reduced. In this paper, we report on the appli...
متن کاملApplication of Automatic Differentiation to Groundwater Transport Models
Automatic diierentiation (AD) is a technique for generating eecient and reliable derivative codes from computer programs with a minimum of human eeort. Derivatives of model output with respect to input are obtained exactly. No intrinsic limits to program length or complexity exist for this procedure. Calculation of derivatives of complex numerical models is required in systems optimization, par...
متن کاملAn Example of an Automatic Differentiation-Based Modelling System
We present a prototype of a Carbon Cycle Data Assimilation System (CCDAS), which is composed of a terrestrial biosphere model (BETHY) coupled to an atmospheric transport model (TM2), corresponding derivative codes and a derivative-based optimisation routine. In calibration mode, we use first and second derivatives to estimate model parameters and their uncertainties from atmospheric observation...
متن کاملDevelopment and first applications of TAC++
The paper describes the development of the software tool Transformation of Algorithms in C++ (TAC++) for automatic differentiation (AD) of C(++) codes by sourceto-source translation. We have transferred to TAC++ a subset of the algorithms from its well-established Fortran equivalent, Transformation of Algorithms in Fortran (TAF). TAC++ features forward and reverse as well as scalar and vector m...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Computer Physics Communications
دوره 184 شماره
صفحات -
تاریخ انتشار 2013